package com.aplink.generic.pojo.controlspec;

import java.util.ArrayList;

import android.text.TextUtils;

import com.aplink.generic.constant.type.GoogleMapsType;
import com.aplink.generic.util.ResourcesHelper;

public class GoogleMapsSpec extends ControlSpec {
    private static final long serialVersionUID = 2441964561887179877L;
	private boolean isLoadGPSLocation;
	private double mCameraBearing;
	private double mCameraTargetLat;
	private double mCameraTargetLng;
	private double mCameraTilt;
	private double mCameraZoom;
	private String mColumnSetting;
	private String mContentData;
	private GoogleMapsType mGoogleMapsType;
	private String mInfoWindowsDesign;
	private ArrayList<String> mSearchFields;
	private boolean mUiCompass;
	private boolean mUiRotateGestures;
	private boolean mUiScrollGestures;
	private boolean mUiZoomControls;
	private boolean mUiZoomGestures;

	public GoogleMapsSpec() {
		mGoogleMapsType = GoogleMapsType.NORMAL;
		mUiZoomGestures = true;
		mUiRotateGestures = true;
		mUiScrollGestures = true;
		mSearchFields = new ArrayList<>();
	}

	public final double getCameraBearing() {
		return this.mCameraBearing;
	}

	public final double getCameraTargetLat() {
		return this.mCameraTargetLat;
	}

	public final double getCameraTargetLng() {
		return this.mCameraTargetLng;
	}

	public final double getCameraTilt() {
		return this.mCameraTilt;
	}

	public final double getCameraZoom() {
		return this.mCameraZoom;
	}

	public String getColumnSetting() {
		return mColumnSetting;
	}

	public int getColumnSettingID() {
		if (TextUtils.isEmpty(mColumnSetting)) {
			return ResourcesHelper.RESOURCE_NOT_FOUND;
		}
		return ResourcesHelper.getRawIdByName(mColumnSetting);
	}

	public String getContentData() {
		return mContentData;
	}

	public int getContentDataID() {
		if (TextUtils.isEmpty(mContentData)) {
			return ResourcesHelper.RESOURCE_NOT_FOUND;
		}
		return ResourcesHelper.getRawIdByName(mContentData);
	}

	public GoogleMapsType getGoogleMapsType() {
		return mGoogleMapsType;
	}

	public String getInfoWindowsDesign() {
		return mInfoWindowsDesign;
	}

	public int getInfoWindowsDesignID() {
		if (TextUtils.isEmpty(mInfoWindowsDesign)) {
			return ResourcesHelper.RESOURCE_NOT_FOUND;
		}
		return ResourcesHelper.getLayoutIdByName(mInfoWindowsDesign);
	}

	public ArrayList<String> getSearchFields() {
		return mSearchFields;
	}

	public boolean isLoadGPSLocation() {
		return isLoadGPSLocation;
	}

	public final boolean isUiCompass() {
		return this.mUiCompass;
	}

	public final boolean isUiRotateGestures() {
		return this.mUiRotateGestures;
	}

	public final boolean isUiScrollGestures() {
		return this.mUiScrollGestures;
	}

	public final boolean isUiZoomControls() {
		return this.mUiZoomControls;
	}

	public final boolean isUiZoomGestures() {
		return this.mUiZoomGestures;
	}

	public final void setCameraBearing(final double cameraBearing) {
		this.mCameraBearing = cameraBearing;
	}

	public final void setCameraTargetLat(final double cameraTargetLat) {
		this.mCameraTargetLat = cameraTargetLat;
	}

	public final void setCameraTargetLng(final double cameraTargetLng) {
		this.mCameraTargetLng = cameraTargetLng;
	}

	public final void setCameraTilt(final double cameraTilt) {
		this.mCameraTilt = cameraTilt;
	}

	public final void setCameraZoom(final double cameraZoom) {
		this.mCameraZoom = cameraZoom;
	}

	public void setColumnSetting(final String columnSetting) {
		mColumnSetting = columnSetting;
	}

	public void setContentData(final String contentData) {
		mContentData = contentData;
	}

	public void setGoogleMapsType(final GoogleMapsType googleMapsType) {
		this.mGoogleMapsType = googleMapsType;
	}

	public void setInfoWindowsDesign(final String infoWindowsDesign) {
		mInfoWindowsDesign = infoWindowsDesign;
	}

	public void setLoadGPSLocation(final boolean isSetGPSLocation) {
		this.isLoadGPSLocation = isSetGPSLocation;
	}

	public void setSearchFields(final ArrayList<String> searchFields) {
		mSearchFields = searchFields;
	}

	public final void setUiCompass(final boolean uiCompass) {
		this.mUiCompass = uiCompass;
	}

	public final void setUiRotateGestures(final boolean uiRotateGestures) {
		this.mUiRotateGestures = uiRotateGestures;
	}

	public final void setUiScrollGestures(final boolean uiScrollGestures) {
		this.mUiScrollGestures = uiScrollGestures;
	}

	public final void setUiZoomControls(final boolean uiZoomControls) {
		this.mUiZoomControls = uiZoomControls;
	}

	public final void setUiZoomGestures(final boolean uiZoomGestures) {
		this.mUiZoomGestures = uiZoomGestures;
	}
}
